3 subject="""comment 4"""
4 date="2025-04-09T15:17:25Z"
6 What I was talking about is still hypothetical. But I think it would be
7 fairly easy to implement.
9 This would be a regular special remote, so it supports encryption=yes and
10 related settings as usual. When a file is stored to this special remote, it
11 would take the object (which would be encrypted if it were so configured),
12 and store it on the remote it is layered on top of. Retrieval would get
13 the object from the layered remote. And so on.
15 That could probably be implemented outside git-annex as an external special
16 remote. It might be better to build it into git-annex, to allow
17 for better streaming of files through it.
19 When used on top of a regular git remote, it would result in the remote
20 having `.git/annex/objects/` containing some encrypted keys. (It could also
21 contain un-encrypted keys stored in it as usual.)
23 The proxy would not be needed to use it. A proxy is just another case
24 where a layered special remote could be useful, when the user wants
25 client-side encryption.
27 A few gotchas I can see:
29 * Running `git-annex unused against the repository storing those
30 encrypted keys would see them as unused.
31 * If the special remote did not use encryption, it would be possible
32 to get into situations where drop violates numcopies. Eg, a drop could
33 verify that the key being dropped from the special remote is present
34 in the remote it's layered on top of and so count it as a copy.
35 But then dropping from the special remote would remove it from the
36 other remote. Probably the solution is for the special remote to require
38 * If a file is stored on both this special remote and on the underlying remote,
39 that would count as 2 copies. But losing a single repository risks losing
40 both copies at once. Same problem if multiple of these special remotes
41 are set up all storing to the same underlying remote. I think this is
42 minor, because there would be 2 actual copies, just copies that happen to